The present invention relates in general to digital storage systems, and more specifically to an improved data encoding technique using check bits and time varying maximum transition run constraint for additional data protection.
In a digital data storage system, a device called xe2x80x9cRead-Channelxe2x80x9d integrated circuit is usually incorporated between the data input/output and the storage medium. In an example of a magnetic disc drive, as illustrated in FIG. 1, during a write process, the Read-Channel integrated circuit 108 encodes the input sequence of binary data, in the form of digital waveform 110, into another sequence of binary data, and uses the latter to generate a write current which is then sent to the head-disc assembly 100, which contains several magnetic discs 102 and several magnetic heads 104 on a moving arm 105. As the magnetic head 104 glides above the surface of the magnetic discs, the magnetic field orientations on the surface of one of the magnetic discs 102 are changed according to the write current as the mechanism for writing the data to a non-volatile magnetic storage medium.
During a read process, the magnetic heads 104 react to the changes in the orientation of the magnetic field on the magnetic discs 102 and produces an electric signal of constantly varying amplitude. This electrical signal is then pre-amplified using appropriate circuitry and the resulting analog waveform 106 is sent to the Read-Channel integrated circuit 108. The Read-Channel integrated circuit 108 processes the analog waveform 106 and outputs the data in a digital waveform 110.
Therefore the recorded waveform (transitions in the orientation of the magnetic field on the magnetic disc) is not generated from the input data directly but from an encoded representation of the data. It is possible then to design different encoding schemes in which the recorded waveform of the encoded data has a variety of desirable properties such as robustness against partial erasure of magnetic transitions.
One way to protect data stored in a storage system is to add check bits which do not carry information but which can be used to identify and, in some cases, correct errors in the information bits. One example would be to add a parity bit at the end of each block of m bits. The parity bit can be chosen to guarantee that the total number of 1""s in the codeword of m bits is even. If during write and read processes, an error occurs in one bit, the parity sum will be odd as an indication that there is an error somewhere among the block of m bits. Depending on the number of check bits inserted, where the check bits are inserted and how the check bits are calculated, the scheme of inserting check bits to protect data stored in a storage system can cover a wide range of error events. One drawback of this scheme, however, is that it only identifies, or sometimes, corrects data after an error has occurred, and does not prevent certain errors from occurring.
One way to prevent certain errors from occurring is to exclude certain error prone code patterns from being used. For example, the number of consecutive transitions in the encoded waveform can be limited. Two different formats of writing data in a storage system include the Non-Return-to-Zero (NRZ) format and the Non-Return-to-Zero-Inverse (NRZI) format. In a magnetic disc drive, the NRZ value of a bit can be 0 or 1 depending on the magnetic field direction of the bit cell on the magnetic disc. Sometimes, it is more convenient to write data in NRZI format, in which 1 corresponds to a polarity change between two neighboring bit cells and 0 corresponds to no polarity change. Shown in FIG. 4 is a schematic drawing of a track 400 of data on a magnetic disc, containing bit cells 402, 404, etc. The NRZ and NRZI sequences corresponding to the track of data are also shown. FIG. 4 illustrates an undesirable situation in a magnetic disc drive, where multiple consecutive transitions in a row, or equivalently, multiple consecutive 1""s in the NRZI sequence of bits, are present. Such data sequences are very susceptible to partial erasure effect when the magnetic field of a bit cell interferes with nearby bit cells. Such interference may change the magnetic field directions of the bit cells, partially erasing the magnetic transitions on the media and weakening the output signal of a magnetic head as it flies over these cells.
One solution to this problem, as disclosed in U.S. Pat. No. 5,859,601, is to limit the number of consecutive 1""s in the NRZI data sequence. The data encoding process which achieves that is called Maximum Transition Run (MTR) code. In many cases it is preferable to use a time-varying version of MTR code instead of straight MTR code. For example, one can allow at most three consecutive 1""s starting from an odd-numbered NRZI bit and at most two consecutive 1""s starting from an even-numbered NRZI bit, and achieve the performance on par with the more constrained non-time-varying MTR code. See, for example, K. Fitzpatrick, C. Modlin xe2x80x9cTime-Varying MTR Codes for High Density Magnetic Recordingxe2x80x9d Proceeding of the Global Conference on Communications, Phoenix, Ariz., 1997.
The problem of multiple consecutive transitions of magnetic field directions in a row of bits on a magnetic disc can be avoided by encoding the input data using time-varying MTR code and therefore errors associated with this problem can be prevented from occurring. However, the types of errors that can be prevented by the MTR code or the time-varying MTR code is limited. It would be desirable to identify or correct other types of errors which the MTR code does not prevent.
In accordance with the present invention, an improved coding technique combines the two approaches (inserting check bits and imposing time-varying MTR constraint). The check bits are inserted to identify and correct common types of errors not covered by the time-varying MTR code.
In one embodiment of the invention, as illustrated by the flowchart in FIG. 2, the method of imposing time-varying MTR and inserting check bits is implemented by several steps. In step 1, the data bits 200 are first encoded using a modified time-varying MTR encoder. The encoder assures that at most j consecutive transitions occur beginning from an even numbered position in the encoded data sequence and at most j+1 consecutive transitions occur beginning from an odd numbered position. Here j is a pre-selected integer greater than or equal to 2. In addition, Step 1 assures that the encoded data sequence 202 will satisfy the time-varying MTR constraint, and the other conditions, even when the check bits are inserted into the sequence later on. This can be achieved by imposing more restrictive time-varying MTR constraints near the pre-selected bit locations where the check bits are to be inserted. Depending on the embodiments, features can be added to the modified time-varying MTR encoder to assure that the encoded data satisfy other desirable conditions.
In step 2, the encoded bits 202 are used to compute check bits 204 (e.g. parity bits). In Step 3 the check bits are inserted into the encoded data. The resulting sequence 206 is used in Step 4 to generate the waveform for recording the data.